home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Events.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  9.2 KB  |  331 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Events.p
  3.  
  4.      Contains:    Event Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Events;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __EVENTS__}
  28. {$SETC __EVENTS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC EventsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __OSUTILS__}
  35. {$I OSUtils.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QUICKDRAW__}
  38. {$I Quickdraw.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __TYPES__}
  41. {$I Types.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50. TYPE
  51.     EventKind                            = UInt16;
  52.     EventMask                            = UInt16;
  53.  
  54. CONST
  55.     nullEvent                    = 0;
  56.     mouseDown                    = 1;
  57.     mouseUp                        = 2;
  58.     keyDown                        = 3;
  59.     keyUp                        = 4;
  60.     autoKey                        = 5;
  61.     updateEvt                    = 6;
  62.     diskEvt                        = 7;
  63.     activateEvt                    = 8;
  64.     osEvt                        = 15;
  65.     kHighLevelEvent                = 23;
  66.  
  67.     mDownMask                    = $02;                            {  mouse button pressed }
  68.     mUpMask                        = $04;                            {  mouse button released }
  69.     keyDownMask                    = $08;                            {  key pressed }
  70.     keyUpMask                    = $10;                            {  key released }
  71.     autoKeyMask                    = $20;                            {  key repeatedly held down }
  72.     updateMask                    = $40;                            {  window needs updating }
  73.     diskMask                    = $80;                            {  disk inserted }
  74.     activMask                    = $0100;                        {  activate/deactivate window }
  75.     highLevelEventMask            = $0400;                        {  high-level events (includes AppleEvents) }
  76.     osMask                        = $8000;                        {  operating system events (suspend, resume) }
  77.     everyEvent                    = $FFFF;                        {  all of the above }
  78.  
  79.     charCodeMask                = $000000FF;
  80.     keyCodeMask                    = $0000FF00;
  81.     adbAddrMask                    = $00FF0000;
  82.     osEvtMessageMask            = $FF000000;
  83.  
  84.                                                                 {  OS event messages.  Event (sub)code is in the high byte of the message field. }
  85.     mouseMovedMessage            = $00FA;
  86.     suspendResumeMessage        = $0001;
  87.  
  88.     resumeFlag                    = 1;                            {  Bit 0 of message indicates resume vs suspend }
  89.     convertClipboardFlag        = 2;                            {  Bit 1 in resume message indicates clipboard change }
  90.  
  91.  
  92.  
  93. TYPE
  94.     EventModifiers                        = UInt16;
  95.  
  96. CONST
  97.                                                                 {  modifiers  }
  98.     activeFlagBit                = 0;                            {  activate? (activateEvt and mouseDown) }
  99.     btnStateBit                    = 7;                            {  state of button? }
  100.     cmdKeyBit                    = 8;                            {  command key down? }
  101.     shiftKeyBit                    = 9;                            {  shift key down? }
  102.     alphaLockBit                = 10;                            {  alpha lock down? }
  103.     optionKeyBit                = 11;                            {  option key down? }
  104.     controlKeyBit                = 12;                            {  control key down? }
  105.     rightShiftKeyBit            = 13;                            {  right shift key down? }
  106.     rightOptionKeyBit            = 14;                            {  right Option key down? }
  107.     rightControlKeyBit            = 15;                            {  right Control key down? }
  108.  
  109.     activeFlag                    = $01;
  110.     btnState                    = $80;
  111.     cmdKey                        = $0100;
  112.     shiftKey                    = $0200;
  113.     alphaLock                    = $0400;
  114.     optionKey                    = $0800;
  115.     controlKey                    = $1000;
  116.     rightShiftKey                = $2000;
  117.     rightOptionKey                = $4000;
  118.     rightControlKey                = $8000;
  119.  
  120.     kNullCharCode                = 0;
  121.     kHomeCharCode                = 1;
  122.     kEnterCharCode                = 3;
  123.     kEndCharCode                = 4;
  124.     kHelpCharCode                = 5;
  125.     kBellCharCode                = 7;
  126.     kBackspaceCharCode            = 8;
  127.     kTabCharCode                = 9;
  128.     kLineFeedCharCode            = 10;
  129.     kVerticalTabCharCode        = 11;
  130.     kPageUpCharCode                = 11;
  131.     kFormFeedCharCode            = 12;
  132.     kPageDownCharCode            = 12;
  133.     kReturnCharCode                = 13;
  134.     kFunctionKeyCharCode        = 16;
  135.     kEscapeCharCode                = 27;
  136.     kClearCharCode                = 27;
  137.     kLeftArrowCharCode            = 28;
  138.     kRightArrowCharCode            = 29;
  139.     kUpArrowCharCode            = 30;
  140.     kDownArrowCharCode            = 31;
  141.     kDeleteCharCode                = 127;
  142.     kNonBreakingSpaceCharCode    = 202;
  143.  
  144.  
  145. TYPE
  146.     EventRecordPtr = ^EventRecord;
  147.     EventRecord = RECORD
  148.         what:                    EventKind;
  149.         message:                UInt32;
  150.         when:                    UInt32;
  151.         where:                    Point;
  152.         modifiers:                EventModifiers;
  153.     END;
  154.  
  155.  
  156.     FKEYProcPtr = ProcPtr;  { PROCEDURE FKEY; }
  157.  
  158.     FKEYUPP = UniversalProcPtr;
  159.  
  160. CONST
  161.     uppFKEYProcInfo = $00000000;
  162.  
  163. FUNCTION NewFKEYProc(userRoutine: FKEYProcPtr): FKEYUPP;
  164.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  165.     INLINE $2E9F;
  166.     {$ENDC}
  167.  
  168. PROCEDURE CallFKEYProc(userRoutine: FKEYUPP);
  169.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  170.     INLINE $205F, $4E90;
  171.     {$ENDC}
  172. PROCEDURE GetMouse(VAR mouseLoc: Point);
  173.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  174.     INLINE $A972;
  175.     {$ENDC}
  176. FUNCTION Button: BOOLEAN;
  177.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  178.     INLINE $A974;
  179.     {$ENDC}
  180. FUNCTION StillDown: BOOLEAN;
  181.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  182.     INLINE $A973;
  183.     {$ENDC}
  184. FUNCTION WaitMouseUp: BOOLEAN;
  185.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  186.     INLINE $A977;
  187.     {$ENDC}
  188. FUNCTION TickCount: UInt32;
  189.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  190.     INLINE $A975;
  191.     {$ENDC}
  192. FUNCTION KeyTranslate(transData: UNIV Ptr; keycode: UInt16; VAR state: UInt32): UInt32;
  193.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  194.     INLINE $A9C3;
  195.     {$ENDC}
  196. FUNCTION GetCaretTime: UInt32;
  197.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  198.     INLINE $2EB8, $02F4;
  199.     {$ENDC}
  200.  
  201.  
  202. TYPE
  203.     KeyMap                                = ARRAY [0..127] OF BOOLEAN;
  204. PROCEDURE GetKeys(VAR theKeys: KeyMap);
  205.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  206.     INLINE $A976;
  207.     {$ENDC}
  208.  
  209.  
  210. { Obsolete event types & masks }
  211.  
  212. CONST
  213.     networkEvt                    = 10;
  214.     driverEvt                    = 11;
  215.     app1Evt                        = 12;
  216.     app2Evt                        = 13;
  217.     app3Evt                        = 14;
  218.     app4Evt                        = 15;
  219.     networkMask                    = $0400;
  220.     driverMask                    = $0800;
  221.     app1Mask                    = $1000;
  222.     app2Mask                    = $2000;
  223.     app3Mask                    = $4000;
  224.     app4Mask                    = $8000;
  225.  
  226.  
  227. TYPE
  228.     EvQElPtr = ^EvQEl;
  229.     EvQEl = RECORD
  230.         qLink:                    QElemPtr;
  231.         qType:                    SInt16;
  232.         evtQWhat:                EventKind;                                {  this part is identical to the EventRecord as defined above  }
  233.         evtQMessage:            UInt32;
  234.         evtQWhen:                UInt32;
  235.         evtQWhere:                Point;
  236.         evtQModifiers:            EventModifiers;
  237.     END;
  238.  
  239.     GetNextEventFilterProcPtr = Register68kProcPtr;  { PROCEDURE GetNextEventFilter(VAR theEvent: EventRecord; VAR result: BOOLEAN); }
  240.  
  241.     GetNextEventFilterUPP = UniversalProcPtr;
  242.  
  243. CONST
  244.     uppGetNextEventFilterProcInfo = $000000BF;
  245.  
  246. FUNCTION NewGetNextEventFilterProc(userRoutine: GetNextEventFilterProcPtr): GetNextEventFilterUPP;
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $2E9F;
  249.     {$ENDC}
  250.  
  251. PROCEDURE CallGetNextEventFilterProc(VAR theEvent: EventRecord; VAR result: BOOLEAN; userRoutine: GetNextEventFilterUPP);
  252.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  253.     {To be implemented:  Glue to move parameters into registers.}
  254.     {$ENDC}
  255.  
  256. TYPE
  257.     GNEFilterUPP                        = GetNextEventFilterUPP;
  258. FUNCTION GetEvQHdr: QHdrPtr;
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $2EBC, $0000, $014A;
  261.     {$ENDC}
  262. FUNCTION GetDblTime: UInt32;
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $2EB8, $02F0;
  265.     {$ENDC}
  266. PROCEDURE SetEventMask(value: EventMask);
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $31DF, $0144;
  269.     {$ENDC}
  270. FUNCTION PPostEvent(eventCode: EventKind; eventMsg: UInt32; VAR qEl: EvQElPtr): OSErr;
  271.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  272.     INLINE $225F, $201F, $305F, $A12F, $2288, $3E80;
  273.     {$ENDC}
  274. FUNCTION KeyTrans(transData: UNIV Ptr; keycode: UInt16; VAR state: UInt32): UInt32;
  275.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  276.     INLINE $A9C3;
  277.     {$ENDC}
  278. FUNCTION GetNextEvent(eventMask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $A970;
  281.     {$ENDC}
  282. FUNCTION WaitNextEvent(eventMask: EventMask; VAR theEvent: EventRecord; sleep: UInt32; mouseRgn: RgnHandle): BOOLEAN;
  283.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  284.     INLINE $A860;
  285.     {$ENDC}
  286. FUNCTION EventAvail(eventMask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  287.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  288.     INLINE $A971;
  289.     {$ENDC}
  290.  
  291. FUNCTION PostEvent(eventNum: EventKind; eventMsg: UInt32): OSErr;
  292.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  293.     INLINE $201F, $305F, $A02F, $3E80;
  294.     {$ENDC}
  295. FUNCTION OSEventAvail(mask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  296.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  297.     INLINE $205F, $301F, $A030, $5240, $1E80;
  298.     {$ENDC}
  299. FUNCTION GetOSEvent(mask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  300.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  301.     INLINE $205F, $301F, $A031, $5240, $1E80;
  302.     {$ENDC}
  303. PROCEDURE FlushEvents(whichMask: EventMask; stopMask: EventMask);
  304.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  305.     INLINE $201F, $A032;
  306.     {$ENDC}
  307. PROCEDURE SystemClick({CONST}VAR theEvent: EventRecord; theWindow: WindowPtr);
  308.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  309.     INLINE $A9B3;
  310.     {$ENDC}
  311. PROCEDURE SystemTask;
  312.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  313.     INLINE $A9B4;
  314.     {$ENDC}
  315. FUNCTION SystemEvent({CONST}VAR theEvent: EventRecord): BOOLEAN;
  316.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  317.     INLINE $A9B2;
  318.     {$ENDC}
  319.  
  320.  
  321. {$ALIGN RESET}
  322. {$POP}
  323.  
  324. {$SETC UsingIncludes := EventsIncludes}
  325.  
  326. {$ENDC} {__EVENTS__}
  327.  
  328. {$IFC NOT UsingIncludes}
  329.  END.
  330. {$ENDC}
  331.